Obisidan 実績時間の出力
code:js
<%*
// ノートからテキストを取得して処理する関数
function formatTasks(text) {
const lines = text.split('\n');
const formattedLines = lines.map(line => {
// 時刻の部分を取得
const timeMatch = line.match(/(\d{2}:\d{2})-(\d{2}:\d{2})/);
if (timeMatch) {
const startTime = timeMatch1; const endTime = timeMatch2; // 時間を分単位で計算
const start = new Date(1970-01-01T${startTime}:00);
const end = new Date(1970-01-01T${endTime}:00);
const duration = (end - start) / 60000; // ミリ秒を分に変換
// 既に所要時間が含まれている場合を確認し、上書き
if (line.match(/(\d+\\)/)) {
return line.replace(/(\d+\\)/, ${duration}\\);
}
// バックスラッシュがある場合、その直前に所要時間を追加
if (line.includes('\\')) {
return line.replace(/(\\+)/, ${duration}$1);
}
// バックスラッシュがない場合は、所要時間とバックスラッシュを追加
return line.replace(timeMatch0, ${timeMatch[0]} ${duration}\\); }
return line;
});
return formattedLines.join('\n');
}
// テンプレート処理
const text = tp.file.content; // Templater用に現在のファイル内容を取得
const result = formatTasks(text); // フォーマット処理を実行
// テンプレート内で結果を出力
tR += result;
%>